package cn.lg.soar.core.api;

import cn.lg.soar.common.data.dict.IDict;
import cn.lg.soar.common.model.EnumVO;
import cn.lg.soar.common.util.data.DataUtil;
import cn.lg.soar.core.dto.SysDict;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * @author luguoxiang 469599794@qq.com
 * @Date: 2023/12/3 22:37
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface IResourceApi {
    String BASE_PATH = "/resource/";
    String ALL_PATH = BASE_PATH + "all-path";
    String SYS_DICT = BASE_PATH +"sys-dict";
    String ALL_SYS_DICT = BASE_PATH + "all-sys-dict";
    String ENUMS = BASE_PATH +"enums";

    /**
     * 获取所有路径资源
     * @return
     */
    Map<String, String> getAllPath();

    /**
     * 获取系统定义的字典资源（枚举、翻译处理器）
     * @param code
     * @return
     */
    IDict<Integer>[] getSysDict(String code);

    /**
     * 获取所有系统定义的字典资源（枚举、翻译处理器）
     * @return
     */
    List<SysDict<Integer>> getAllSysDict();

    /**
     * 获取枚举
     */
    Map<String, IDict<?>[]> getEnums(String...names);

    /**
     * 获取枚举
     */
    default Map<String, IDict<?>[]> getEnums(Collection<String> names) {
        return getEnums(DataUtil.collectionToArray(names));
    }
}
